package rsj.sql.customer;

import com.rlyy.aibase.utils.base.Node;
import com.rlyy.aibase.utils.base.TableNode;
import rsj.annotation.DynamicSelect;
import rsj.api.report.entity.ReportParam;
import rsj.service.report.dynamic.CustomerProductReportDynamicStatement;

/**
 * 客户接口报表
 *
 * @author yuanqinglong
 * @since 2021/7/15 14:46
 */
public interface CustomerProductReportDao {



    /**
     * 客户接口报告列表
     *
     * @param reportParam 报告参数
     * @return {@link TableNode}
     */
    @DynamicSelect(type = CustomerProductReportDynamicStatement.class, method = "customerProductReportListSql")
    TableNode customerProductReportList(ReportParam reportParam);


    /**
     * 客户接口报告数
     *
     * @param reportParam 报告参数
     * @return {@link Node}
     */
    @DynamicSelect(type = CustomerProductReportDynamicStatement.class, method = "customerProductReportCountSql")
    Node customerProductReportCount(ReportParam reportParam);



    /**
     * 导出客户接口报告列表
     *
     * @param reportParam 报告参数
     * @return {@link TableNode}
     */
    @DynamicSelect(type = CustomerProductReportDynamicStatement.class, method = "customerProductReportExportSql")
    TableNode customerProductReportExportList(ReportParam reportParam);





    /**
     * 客户接口报告列表
     *
     * @param reportParam 报告参数
     * @return {@link TableNode}
     */
    @DynamicSelect(type = CustomerProductReportDynamicStatement.class, method = "customerProductReportDetailSql")
    TableNode customerProductReportDetailList(ReportParam reportParam);


    /**
     * 客户接口报告数
     *
     * @param reportParam 报告参数
     * @return {@link Node}
     */
    @DynamicSelect(type = CustomerProductReportDynamicStatement.class, method = "customerProductReportDetailCountSql")
    Node customerProductReportDetailCount(ReportParam reportParam);



    /**
     * 导出客户接口报告列表
     *
     * @param reportParam 报告参数
     * @return {@link TableNode}
     */
    @DynamicSelect(type = CustomerProductReportDynamicStatement.class, method = "customerProductReportDetailExportSql")
    TableNode customerProductReportDetailExportList(ReportParam reportParam);

}
